﻿using AutoMapper;
using SIG.DAL.Dapper.Model;
using SIG.DAL.Dapper.Repositories;
using SIG.Service;
using SIG.ViewModel.Front.Pages;
using SIG.WebMVC.Filters;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace SIG.WebMVC.Controllers
{
    public class PageController : BaseController
    {
        [Route("page/{seoName}")]
        [SIGActionFilter]
        // GET: Page
        public ActionResult Index(string seoName)
        {
            PageMetaRepository _pageMetaRepository = new PageMetaRepository();
            PageRepository _pageRepository = new PageRepository();

            var page = _pageRepository.GetPageBySeoName(seoName);

            if (page == null)
                return HttpNotFound();

            var pageMeta = _pageMetaRepository.GetPageMeta(ModelType.PAGE, page.Id.ToString());
            PageVM vm = new PageVM()
            {
                Id = page.Id,
                Title = page.Title,
                Body = page.Body,
                TemplateName = page.TemplateName,
                Keyword = pageMeta != null ? pageMeta.Keyword : "",
                Description = pageMeta != null ? pageMeta.Description : ""
            };
            return View(vm);
        }
        [Route("about_{seoName}")]
        [SIGActionFilter]
        // GET: Page
        public ActionResult About(string seoName)
        {
            PageMetaRepository _pageMetaRepository = new PageMetaRepository();
            PageRepository _pageRepository = new PageRepository();

            var page = _pageRepository.GetPageBySeoName(seoName);

            if (page == null)
                return HttpNotFound();

            var pageMeta = _pageMetaRepository.GetPageMeta(ModelType.PAGE, page.Id.ToString());
            PageVM vm = new PageVM()
            {
                Id = page.Id,
                Title = page.Title,
                Body = page.Body,
                TemplateName = page.TemplateName,
                Keyword = pageMeta != null ? pageMeta.Keyword : "",
                Description = pageMeta != null ? pageMeta.Description : ""
            };
            return View(vm);
        }

        [Route("software_{seoName}")]
        [SIGActionFilter]
        // GET: Page
        public ActionResult Sevrice(string seoName)
        {
            PageMetaRepository _pageMetaRepository = new PageMetaRepository();
            PageRepository _pageRepository = new PageRepository();

            var page = _pageRepository.GetPageBySeoName(seoName);

            if (page == null)
                return HttpNotFound();

            var pageMeta = _pageMetaRepository.GetPageMeta(ModelType.PAGE, page.Id.ToString());
            PageVM vm = new PageVM()
            {
                Id = page.Id,
                Title = page.Title,
                Body = page.Body,
                TemplateName = page.TemplateName,
                Keyword = pageMeta != null ? pageMeta.Keyword : "",
                Description = pageMeta != null ? pageMeta.Description : ""
            };
            return View(vm);
        }

        [Route("customize/{seoName}")]
        [SIGActionFilter]
        // GET: Page
        public ActionResult Customize(string seoName)
        {
            PageMetaRepository _pageMetaRepository = new PageMetaRepository();
            PageRepository _pageRepository = new PageRepository();

            var page = _pageRepository.GetPageBySeoName(seoName);

            if (page == null)
                return HttpNotFound();

            var pageMeta = _pageMetaRepository.GetPageMeta(ModelType.PAGE, page.Id.ToString());
            PageVM vm = new PageVM()
            {
                Id = page.Id,
                Title = page.Title,
                Body = page.Body,
                TemplateName = page.TemplateName,
                Keyword = pageMeta != null ? pageMeta.Keyword : "",
                Description = pageMeta != null ? pageMeta.Description : ""
            };
            return View(vm);
        }




    }
}